{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Spectral derivative in **2D** in NumPy (using `rfft`)\n",
    "\n",
    "$$ \\nabla f (\\vec{x}) = \\text{ifft2} \\left( i \\vec{k} \\odot \\text{fft2} \\left( f(\\vec{x}) \\right) \\right) $$\n",
    "\n",
    "If $f$ is a real-valued function, i.e., $f(\\vec{x}) \\in \\mathbb{R}$, then we can\n",
    "save some computation with the real-valued Fourier transform:\n",
    "\n",
    "$$ \\nabla f (\\vec{x}) = \\text{irfft2} \\left( i \\vec{k}_{real} \\odot \\text{rfft2} \\left( f(\\vec{x}) \\right) \\right) $$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Assuming the domain is [0, L]^2 with identical number of grid points in each\n",
    "# direction for now\n",
    "L = 1.0\n",
    "N = 100"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# IMPORTANT: endpoint is not included as per FFT convention\n",
    "mesh_1d = np.linspace(0, L, N, endpoint=False)\n",
    "X, Y = np.meshgrid(mesh_1d, mesh_1d)\n",
    "mesh = np.stack((X, Y))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "f = lambda x: np.sin(2 * np.pi * x[0]) * np.sin(4 * np.pi * x[1])\n",
    "f_x0 = lambda x: 2 * np.pi * np.cos(2 * np.pi * x[0]) * np.sin(4 * np.pi * x[1])\n",
    "f_x1 = lambda x: np.sin(2 * np.pi * x[0]) * 4 * np.pi * np.cos(4 * np.pi * x[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "f_h = f(mesh)\n",
    "f_x0_h = f_x0(mesh)\n",
    "f_x1_h = f_x1(mesh)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_contour_row(*fields, levels=np.linspace(-1, 1, 11), cmap=\"RdBu_r\"):\n",
    "    fig, axes = plt.subplots(1, len(fields), figsize=(5*len(fields), 5))\n",
    "    for ax, field in zip(axes, fields):\n",
    "        a = ax.contourf(X, Y, field, levels=levels, cmap=cmap)\n",
    "        ax.set_aspect(\"equal\")\n",
    "        ax.set_xlabel(\"$x_0$\")\n",
    "        ax.set_ylabel(\"$x_1$\")\n",
    "\n",
    "    fig.subplots_adjust(right=0.8)\n",
    "    cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])\n",
    "    fig.colorbar(a, cax=cbar_ax)\n",
    "\n",
    "    return fig, axes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 1500x500 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_contour_row(f_h, f_x0_h, f_x1_h);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [],
   "source": [
    "wavenumbers_1d_real = np.fft.rfftfreq(N, d=1/N) * 2 * np.pi / L\n",
    "wavenumbers_1d_full = np.fft.fftfreq(N, d=1/N) * 2 * np.pi / L\n",
    "KX, KY = np.meshgrid(wavenumbers_1d_real, wavenumbers_1d_full)\n",
    "wavenumbers = np.stack((KX, KY))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(2, 100, 51)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Expected shape: (2, N, N//2+1)\n",
    "wavenumbers.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "# More precisely: the \"gradient\" operator (as it accumulates all partial derivatives)\n",
    "derivative_operator = 1j * wavenumbers"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "f_x0_h_spectrally = np.fft.irfft2(\n",
    "    derivative_operator[0] * np.fft.rfft2(f_h),\n",
    "    s=(N, N),\n",
    ")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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F110kTZt2hTRlgbLy/Net26dLrvsMp155pk688wz1dTU5Pj/lFReX2/Dhg0bNGjQIF177bXhbmBIvD7v999/X7fffrvGjRunqqoqnX/++an7Wff6nFetWqULLrhAH/rQh1RbW6uvf/3rOn78eERbCz/Ib/LbDfI7ffktkeFAlDI56G3cuFELFixQc3Ozdu3apalTp2rmzJk6cOCA6cdv375d119/vW655Rb97ne/07XXXqtrr71W/+f//J+It7w8Xp/3tm3bdP311+vXv/61duzYodraWl199dV66623It7y8nh93oa2tjZ985vf1GWXXRbRlgbL6/Pu7u7WVVddpba2Nj399NPau3ev1q1bpwkTJkS85f55fc5PPvmkFi5cqObmZrW2turxxx/Xxo0bdffdd0e85XCL/Ca/ye+BspDfEhkORC2T99FraGjQJz/5ST366KOSpN7eXtXW1uqOO+7QwoULB3z8nDlzdPToUT333HN9j33qU59SXV2d1q5dG9l2l8vr8y7V09OjM888U48++qjmzp0b9uYGxs/z7unp0eWXX65/+Id/0L/927/p/fff17PPPhvhVpfP6/Neu3atVq5cqT179mjo0KFRb24gvD7n+fPnq7W1VVu3bu177Bvf+IZeffVVvfTSS5FtN9wjv8lv8jub+S2R4VnEffSSLXN79Lq7u9XS0qKmpqa+xyoqKtTU1KQdO3aYfs6OHTv6fbwkzZw50/Ljk8jP8y517NgxnTx5Uh/5yEfC2szA+X3e3/nOdzRmzBjdcsstUWxm4Pw875///OdqbGzU7bffrpqaGl144YVavny5enp6otrssvh5zjNmzFBLS0vfoUFvvvmmNm3apFmzZkWyzfCG/Ca/ye9s5rdEhgNxGBL3BgTt0KFD6unpUU1NTb/Ha2pqtGfPHtPPaW9vN/349vb20LYzaH6ed6lvfetbGj9+/IDSlGR+nvdLL72kxx9/XLt3745gC8Ph53m/+eab+tWvfqUbb7xRmzZt0h/+8Ad99atf1cmTJ9Xc3BzFZpfFz3O+4YYbdOjQIV166aUqFAo6deqU/vEf/5HDfhKK/Ca/JfLbTNrzWyLDgThkbo8e/Ln//vu1YcMGPfPMM6quTu+udyddXV266aabtG7dOo0ePTruzYlUb2+vxowZo8cee0z19fWaM2eO7rnnnlQd3ubVtm3btHz5cn3/+9/Xrl279LOf/UzPP/+87rvvvrg3DQgM+Z19ecxviQwHypW5PXqjR4/W4MGD1dHR0e/xjo4OjR071vRzxo4d6+njk8jP8zY8+OCDuv/++/XLX/5SF198cZibGTivz/uPf/yj2traNHv27L7Hent7JUlDhgzR3r17de6554a70QHw83qPGzdOQ4cO1eDBg/semzx5strb29Xd3a3KyspQt7lcfp7zkiVLdNNNN+nLX/6yJOmiiy7S0aNH9ZWvfEX33HOPKipY60oS8pv8lshvM2nPb4kMz7rCqRNxb0JZ0r79VjI36FVWVqq+vl5bt27tu+Ryb2+vtm7dqvnz55t+TmNjo7Zu3aqvfe1rfY9t2bJFjY2NEWxxMPw8b0n653/+Zy1btky/+MUvNG3atIi2Njhen/ekSZP02muv9Xts8eLF6urq0iOPPKLa2tooNrtsfl7vSy65RE8++aR6e3v73hzfeOMNjRs3LhUlwc9zPnbs2IAiYBSlDF6HKvXIb/Kb/M5mfktkeFZVVlZq7Nixat+2Mu5NKdvYsWNT8/vkWiGDNmzYUKiqqir86Ec/Krz++uuFr3zlK4VRo0YV2tvbC4VCoXDTTTcVFi5c2PfxL7/8cmHIkCGFBx98sNDa2lpobm4uDB06tPDaa6/F9RR88fq877///kJlZWXh6aefLrzzzjt9f7q6uuJ6Cr54fd6lbr755sLnP//5iLY2OF6f9759+wrDhw8vzJ8/v7B3797Cc889VxgzZkzhu9/9blxPwTOvz7m5ubkwfPjwwr/8y78U3nzzzcILL7xQOPfccwvXXXddXE8BDshv8pv8zmZ+FwpkeFb95S9/KRw+fDj1f/7yl7/E/V8ZuEwOeoVCobB69erCRz/60UJlZWVh+vTphVdeeaXv36644orCzTff3O/j//Vf/7Vw/vnnFyorKwt//dd/XXj++ecj3uJgeHnef/VXf1WQNOBPc3Nz9BteJq+vd7G0FoVCwfvz3r59e6GhoaFQVVVVOOeccwrLli0rnDp1KuKtLo+X53zy5MnCvffeWzj33HML1dXVhdra2sJXv/rVwp///OfoNxyukd/kt4H8Pi0L+V0okOFAlDJ5Hz0AAAAAyDPOYgUAAACAjGHQAwAAAICMYdADAAAAgIxh0AMAAACAjGHQAwAAAICMYdADAAAAgIxh0AMAAACAjGHQAwAAAICMYdADAAAAgIxh0APK9C//8i/60Ic+pHfeeafvsXnz5uniiy/W4cOHY9wyAIAd8htAlg0qFAqFuDcCSLNCoaC6ujpdfvnlWr16tZqbm7V+/Xq98sormjBhQtybBwCwQH4DyDL26AFlGjRokJYtW6Z169Zp2bJlWr16tTZv3txXEp577jldcMEFOu+88/TDH/4w5q0FABjIbwBZxh49ICCf+MQn9Pvf/14vvPCCrrjiCknSqVOnNGXKFP3617/WyJEjVV9fr+3bt+uss86KeWsBAAbyG0AWsUcPCMDmzZu1Z88e9fT0qKampu/xnTt36q//+q81YcIEnXHGGbrmmmv0wgsvxLilAIBi5DeArGLQA8q0a9cuXXfddXr88cd15ZVXasmSJX3/9vbbb/c7z2PChAl666234thMAEAJ8htAlg2JewOANGtra9NnP/tZ3X333br++ut1zjnnqLGxUbt27dInPvGJuDcPAGCB/AaQdezRA3x677339JnPfEaf//zntXDhQklSQ0ODrrnmGt19992SpPHjx/dbAX7rrbc0fvz4WLYXAPAB8htAHnAxFiBEp06d0uTJk7Vt2zZO5geAFCG/AaQdh24CIRoyZIgeeugh/c3f/I16e3v1T//0T5QEAEgB8htA2rFHDwAAAAAyhnP0AAAAACBjGPQAAAAAIGMY9AAAAAAgYxj0AAAAACBjGPQAAAAAIGMY9AAAAAAgYxj0AAAAACBjGPQAAAAAIGMY9AAAAAAgYxj0AAAAACBjGPQAAAAAIGP+f9fatqogqagiAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 1000x500 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_contour_row(f_x0_h, f_x0_h_spectrally);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "7.999829907303891e-15"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.linalg.norm(f_x0_h_spectrally - f_x0_h) / np.linalg.norm(f_x0_h)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "base",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
